<?php
namespace app\user\controller;

use app\user\model\User as modelUser;
use app\index\controller\Index;
use think\Controller;
use think\facade\Request;
use think\facade\Cookie;
use think\facade\Session;
use \PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

class User extends Controller
{
    public function tologin()
    {
        $user=Session::get('user');
        if (!empty($user)){
            $this->error('您已经登陆了,请先注销','/');
        }
        return $this->fetch("login");
    }
    public function login()
    {
        $Name = Request::post('UserName');
        $PassWord = Request::post('PassWord');
        $user = modelUser::where('name', $Name)->find();
        if (empty($user)!=true) {
            if ($PassWord == $user->pass) {
                Session::set('user',$user);
                if ($user->is_admin == 0) {
                    echo "<script> alert('登录成功！');</script>";
//                    echo "<script> location.assign('http://snackshop.com/');</script>";
                    return $this->redirect('/user/index/index');
                } else {
                    echo "<script> alert('登录成功！');</script>";
                }
            } else {
                return $this->fetch('login', [
                    'Passerro'=>'密码错误！',
                ]);
            }
        } else {
            return $this->fetch('login', [
                'IDerro'=>'该账户不存在！',
            ]);
        }
    }

    public function toregister()
    {
        return $this->fetch("register");
    }

    public function reg()
    {
        $p=input('post.');
        $data['name']=$p['UserName'];
        $data['pass']=$p['PassWord'];
        $data['email']=$p['umail'];
        $code = Request::post('Code');
        $email_code = Session::get('email_code');

        if(($code != $email_code) || (empty($code)))
        {
            Session::delete('email_code');
            $this->error('验证码错误','../../register');

        }else
        {
            Session::delete('email_code');
            db('user')->insert($data);
            echo "<script> alert('注册成功！');</script>";
            //return $this->redirect('register');
            echo "<script> location.assign('/login');</script>";
        }
    }
    public function namecheck()
    {
        $Name = Request::post('UserName');
        $user = modelUser::where('name', $Name)->find();
        if (empty($user)!=true) {
            return 1;
        } else {
            return 0;
        }
    }
    public function passcheck()
    {
        $Pass = Request::post('PassWord');
        if (strlen($Pass) < 6) {
            return 1;
        } else {
            return 0;
        }
    }


    public function sendemail()
    {
        $Code='';
        $arr=[3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','j','k','o','p','q','w','e','A','B','C','D','E','F','G','H','M','M'];
        for ($i=0;$i<5;$i++){
            $Code.=$arr[rand(0,count($arr)-1)];
        }
        //$Code = Request::post('Code');
        Session::set('email_code',$Code);

        $toemail = Request::post('toemail');
        //dump($toemail);

        //$toemail = '907881915@qq.com';//定义收件人的邮箱

        $mail = new PHPMailer();

//        $mail->isSMTP();// 使用SMTP服务
//        $mail->CharSet = "utf8";// 编码格式为utf8，不设置编码的话，中文会出现乱码
//        $mail->Host = "smtp.163.com";// 发送方的SMTP服务器地址
//        $mail->SMTPAuth = true;// 是否使用身份验证
//        $mail->Username = "snackshop001@163.com";// 发送方的163邮箱用户名，就是你申请163的SMTP服务使用的163邮箱</span><span style="color:#333333;">
//        $mail->Password = "JUBMSUDZGUVSHKYF";// 发送方的邮箱密码，注意用163邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码！</span><span style="color:#333333;">
//        $mail->SMTPSecure = "ssl";// 使用ssl协议方式</span><span style="color:#333333;">
//        $mail->Port = 465;// 163邮箱的ssl协议方式端口号是465/994
//
//        $mail->setFrom("snackshop001@163.com","管理员");// 设置发件人信息，如邮件格式说明中的发件人，这里会显示为Mailer(xxxx@163.com），Mailer是当做名字显示
//        $mail->addAddress($toemail,'Hong');// 设置收件人信息，如邮件格式说明中的收件人，这里会显示为Liang(yyyy@163.com)
//        //$mail->addReplyTo("xxx@163.com","Reply");// 设置回复人信息，指的是收件人收到邮件后，如果要回复，回复邮件将发送到的邮箱地址
//        //$mail->addCC("xxx@163.com");// 设置邮件抄送人，可以只写地址，上述的设置也可以只写地址(这个人也能收到邮件)
//        //$mail->addBCC("xxx@163.com");// 设置秘密抄送人(这个人也能收到邮件)
//        //$mail->addAttachment("bug0.jpg");// 添加附件
//
//
//        $mail->Subject = "这是一个测试邮件";// 邮件标题
//        $mail->Body = "您的验证码是：".$Code;// 邮件正文
//        //$mail->AltBody = "This is the plain text纯文本";// 这个是设置纯文本方式显示的正文内容，如果不支持Html方式，就会用到这个，基本无用
//
//        if(!$mail->send()){// 发送邮件
//            echo "Message could not be sent.";
//            echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息
//        }else{
//            echo '发送成功';
//        }
        try {
            $mail->CharSet ="UTF-8";                     //设定邮件编码
            $mail->SMTPDebug = 0;                        // 调试模式输出
            $mail->isSMTP();                             // 使用SMTP
            $mail->Host = 'smtp.qq.com';                // SMTP服务器
            $mail->SMTPAuth = true;                      // 允许 SMTP 认证
            $mail->Username = '***';                // SMTP 用户名  即邮箱的用户名
            $mail->Password = '***';             // SMTP 密码  部分邮箱是授权码(例如163邮箱)
            $mail->SMTPSecure = 'ssl';                    // 允许 TLS 或者ssl协议
            $mail->Port = 465;                            // 服务器端口 25 或者465 具体要看邮箱服务器支持

            $mail->setFrom('***', 'Mailer');  //发件人
            // $mail->addAddress('aaaa@126.com', 'Joe');  // 收件人
            $mail->addAddress($toemail);  // 可添加多个收件人
            //$mail->addReplyTo('xxxx@163.com', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
            //$mail->addCC('cc@example.com');                    //抄送
            //$mail->addBCC('bcc@example.com');                    //密送

            //发送附件
            // $mail->addAttachment('../xy.zip');         // 添加附件
            // $mail->addAttachment('../thumb-1.jpg', 'new.jpg');    // 发送附件并且重命名

            //Content
            $mail->isHTML(true);                                  // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容
            $mail->Subject = '请保留好您的验证码';
            $mail->Body    = $Code;
            $mail->AltBody = '如果邮件客户端不支持HTML则显示此内容';

            $mail->send();
            echo "发送成功";
        } catch (Exception $e) {
            echo '邮件发送失败: ', $mail->ErrorInfo;
        }
    }



    public function logout()
    {
        Session::delete('user');
        echo "<script> alert('退出登录！');</script>";
        echo "<script> location.assign('/login');</script>";
    }


    public function hello($name = 'ThinkPHP5')
    {
        return 'hello,' . $name;
    }

}
